home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio 5 / Ray Dream.iso / pc / DreamSDK / Windows / INCLUDES / I3DEXCAM.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-11  |  2.8 KB  |  60 lines

  1. /* $Id: I3DEXCAM.H 1.5 1995/11/05 07:58:50 psq-pc Exp $ */
  2. /*****************************************************************************\
  3. *                                                                             *
  4. * I3DExCam.h - I3DExCamera definition                                                       *
  5. *                                                                             *
  6. *           Copyright (c) 1995, Ray Dream, Inc. All rights reserved.          *
  7. *                                                                             *
  8. \*****************************************************************************/
  9.  
  10. #ifndef __I3DEXCAM__
  11. #define __I3DEXCAM__
  12.  
  13. #ifndef __I3DEX__
  14. #include "I3DEx.h"
  15. #endif
  16.  
  17.  
  18. //****** Globally Unique Ids *************************************************
  19.  
  20. DEFINE_GUID(IID_I3DExCamera, 0x9F338E00L, 0x3A02, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
  21.  
  22. /*****************************************************************************\
  23. *  I3DExCamera                                                                *
  24. *                                                                             *
  25. *  Cameras                                                                    *
  26. *                                                                             *
  27. \*****************************************************************************/
  28.  
  29. #undef  INTERFACE
  30. #define INTERFACE   I3DExCamera
  31.  
  32. DECLARE_INTERFACE_(I3DExCamera, I3DExDataExchanger) {
  33.     // IUnknown methods
  34.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  35.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  36.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  37.   
  38.     // I3DExtension methods
  39.     STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
  40.     STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
  41.  
  42.   // I3DExDataExchanger methods
  43.     STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
  44.     STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
  45.   STDMETHOD(ExtensionDataChanged) (THIS) PURE;
  46.   STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
  47.     STDMETHOD_(short, GetResID) (THIS) PURE;
  48.   
  49.   // I3DExCamera methods
  50.     STDMETHOD(SetTransform) (THIS_ TRANSFORM3D* transform) PURE;
  51.     STDMETHOD_(BOOLEAN, CreateRay) (THIS_ VECTOR2D* screenPosition, VECTOR3D* resultOrigin, VECTOR3D* resultDirection) PURE;
  52.     STDMETHOD_(BOOLEAN, Project3DTo2D) (THIS_ VECTOR3D* position, VECTOR2D* resultScreenPosition, NUM3D* resultDistanceToScreen) PURE;
  53.     STDMETHOD_(ULONG, GetPrimitiveID) (THIS) PURE;
  54.     STDMETHOD_(ULONG, Clip3D) (THIS_  FACET3D* localFacet, VERTEX3D* localVertices,
  55.                                                                         FACET3D* cameraFacet, VERTEX3D* cameraVertices,
  56.                                                                         NUM3D* clipBox) PURE;
  57.     STDMETHOD_(BOOLEAN, ClipLine3D) (THIS_ VECTOR3D* P1, VECTOR3D* P2) PURE;
  58.     };
  59. #endif
  60.